﻿import pandas as pd
import requests
from bs4 import BeautifulSoup
url = []
head = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}

with open('2309050111url.txt', 'r') as file:
    for line in file:
        line = line.strip()
        url.append(line)
print(url[0])
print(url[1])
# 引入文件2309050111url的网址，并命名为url[0]和url[1]


def gethome(url):
    try:
        response = requests.get(url, headers=head, timeout=30)
        response.raise_for_status()
        response.encoding = 'utf-8'
        return response.text
    except requests.RequestException as e:
        print(f"请求失败: {e}")
        return ""
#  以下为第一个网址的爬虫程序（中国大学排行）

# 发送请求并获取HTML内容
response = requests.get(url[0])
response.encoding = 'utf-8'
html_content = response.text

# 解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')

# 初始化列表来保存数据
data = []
table = soup.find('table', {'style': 'width: 100%;'})
# 遍历表格的行
for row in table.find_all('tr'):
    # 跳过表头行
    if 'bgcolor' in row.attrs:
        continue

        # 查找并提取每个单元格的数据
    cells = row.find_all('td')
    if cells:
        rank = cells[0].text.strip()
        school_name = cells[1].text.strip()
        total_score = cells[2].text.strip()

        # 将数据添加到列表中
        data.append([rank, school_name, total_score])

    # 创建DataFrame
df = pd.DataFrame(data, columns=['排名', '学校名称', '总分'])

# 输出为Excel文件
df.to_excel('university_rankings.xlsx', index=False, engine='openpyxl')

print("数据已保存为Excel文件：university_rankings.xlsx")
#  以下为第二个网址的爬虫程序（中国企业500强排名）
# 发送网络请求获取HTML内容
response = requests.get(url[1])
response.encoding = 'utf-8'
html_content = response.text

# 解析HTML内容
soup = BeautifulSoup(html_content, 'html.parser')
table_rows = soup.find_all('tr')

# 提取数据
data = []
for row in table_rows:
    cols = row.find_all('td')
    if cols:  # 确保行中有列
        rank = cols[0].text.strip()  # 排名
        company_link = cols[2].find('a')
        company_name = company_link.text.strip() if company_link else None
        revenue = cols[3].text.strip().replace(',', '')
        profit = cols[4].text.strip().replace(',', '')
        control_symbol = cols[5].find('span').text if cols[5].find('span') else None
        data.append([rank, company_name, revenue, profit, control_symbol])

    # 创建DataFrame
df = pd.DataFrame(data, columns=['排名', '公司名称', '营业收入', '利润', '控制符号'])

# 保存到Excel文件
excel_file = '500top_company.xlsx'
df.to_excel(excel_file, index=False)



# 将两个文件整理到一个文件的两个sheet中

# 读取第一个Excel文件到DataFrame
df1 = pd.read_excel('university_rankings.xlsx')

# 读取第二个Excel文件到DataFrame
df2 = pd.read_excel('500top_company.xlsx')

# 创建一个ExcelWriter对象，用于写入数据到新的Excel文件
with pd.ExcelWriter('2309050111url.xlsx') as writer:
    # 将df1写入到名为'Sheet1'的sheet中
    df1.to_excel(writer, sheet_name='中国大学排名', index=False)
    # 将df2写入到名为'Sheet2'的sheet中
    df2.to_excel(writer, sheet_name='中国企业500强排名', index=False)